package com.wmm.job.student;


import java.util.Iterator;
import java.util.List;

/**
 * 编程实现学生信息管理系统中逻辑处理层的功能
 */
public class ManageStudent {
	/**
     * 定义一个集合来存储学生信息
	 */
	private List<Student> studentList;

    /**
	 * 通过构造方法实现成员变量的初始化
	 * @param studentList
	 */
	public ManageStudent(List<Student> studentList) {
		this.studentList = studentList;
	}

    /**
     * 增加学生信息到集合中
	 */
	public boolean addStudent(Student student) throws AgeException, IdException {

		for(Student ts : studentList) {
			if(student.getId() == ts.getId()) {
				System.out.println("该学生已经存在，增加失败");
				return false;
			}
		}
		studentList.add(student);
		System.out.println("增加学生信息成功");
		return true;
	}

    /**
     * 从集合中删除学生信息
	 */
	public boolean deleteStudent(int id) {
		// 1.查找该学生信息是否存在，如果存在则删除成功
		Iterator<Student> iterator = studentList.iterator();
		while (iterator.hasNext()) {
			Student next = iterator.next();
			if (id == next.getId()) {
				iterator.remove();
				System.out.println("删除成功，被删除的学生信息是：" + next);
				return true;
			}
		}
		// 否则删除失败
		System.out.println("该学生不存在，删除失败！");
		return false;
	}

	/**
	 * 修改学生信息从集合中
	 */
	public boolean modifyStudent(int id, int age,String name) throws AgeException, IdException {

		// 1.使用for循环去查找学生信息并给出下一步提示信息
		for (int i = 0; i < studentList.size(); i++) {
			if(id == studentList.get(i).getId()){
				// 修改成功的处理方式
				Student student = new Student(id, name, age);
				studentList.set(i, student);
				System.out.println("修改成功，修改后的学生信息是：" + student);
				return true;
			}
		}
		// 修改失败的处理方式
		System.out.println("修改失败，该学生不存在！");
		return false;
	}

	/**
	 * 查找学生信息从集合中
	 */
	public Student queryStudent(int id) {
		// 1.使用增强版for循环去查找学生信息并给出提示信息
		for(Student s : studentList) {
			if(id == s.getId()){
				// 查找成功的处理方式
				System.out.println("查找成功，查找到的学生信息是：" + s);
				return s;
			}
		}
		// 查找失败的处理方式
		System.out.println("查找失败，该学生不存在！");
		return null;
	}

	/**
	 * 检查学生登录检查
	 * @param id
	 * @param passWord
	 * @return
	 */
	public boolean checkStudent(int id,String passWord){
		for(Student s : studentList) {
			if(id == s.getId()){
				// 查找成功的处理方式
				if (s.getPassWord().equals(passWord)){
					return true;
				}
			}
		}
		return false;
	}

	/**
	 * 记录学生得分
	 * @param id
	 * @param score
	 * @return
	 */
	public boolean modifyStudentScore(int id,int score){
		for(Student s : studentList) {
			if(id == s.getId()){
				// 查找成功的处理方式
				s.setSocre(score);
				return true;
			}
		}
		return false;
	}

	/**
	 * 修改学生登录密码
	 * @param id
	 * @param passWord
	 * @return
	 */
	public boolean modifyStudentPassWord(int id,String passWord){
		for(Student s : studentList) {
			if(id == s.getId()){
				// 查找成功的处理方式
				s.setPassWord(passWord);
				return true;
			}
		}
		return false;
	}

	public int getStudentScore(int id){
		for(Student s : studentList) {
			if(id == s.getId()){
				// 查找成功的处理方式
				return s.getSocre();
			}
		}
		return -1;
	}
}
